/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"A6BD64A8-1A98-4B74-8D86-E1FE388E6850",variableType:4}
 */
var fContPaq = 0;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"C10E87C5-20F5-48FB-8CBE-8C6BA42A7879",variableType:8}
 */
var fTotKg = 0;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"AEEC1595-4122-4939-A28E-9B785E9E5DC7",variableType:8}
 */
var fTotP2 = 0;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"A56440C6-34CD-48D6-A826-253C84C8D18C",variableType:8}
 */
var fTotRecep = 0;

/**
 * @properties={typeid:24,uuid:"777E121F-2C0C-410F-B295-01FA001F3A97"}
 */
function llenarVl(valuelist)
{
	var query = 'SELECT nro_oc '+ globals.gCharConcat + ' \' - \' '+ globals.gCharConcat +' rtrim(p.descripcion) '+ globals.gCharConcat +' \' - \' '+ globals.gCharConcat +' cantidad_pendiente_entrega as "vl", d.oc_detalle_id FROM recep_detalle as "d" '+
				'join oc_detalle as "o" on d.oc_detalle_id = o.oc_detalle_id '+
				'join oc_cabecera as "c" on c.oc_cabecera_id = o.oc_cabecera_id '+
				'join productos as "p" on p.producto_id = o.producto_id '+
				'where recep_cabecera_id = ? '+
				'group by d.oc_detalle_id, o.cantidad_pendiente_entrega, p.descripcion, c.nro_oc '+
				'order by d.oc_detalle_id'
	var max 	= -1
	var args 	= [recep_cabecera_id]
	var server 	= databaseManager.getDataSourceServerName(controller.getDataSource())
	var ds 		= databaseManager.getDataSetByQuery(server,query,args,max)
	
	application.setValueListItems(valuelist,ds)	
}

/**
 * Callback method for when form is shown.
 *
 * @param {Boolean} firstShow form is shown first time after load
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"50C48248-3054-4026-B102-39C90D6907FA"}
 */
function onShow(firstShow, event) {
	
	controlaTipo()
	llenarVl('recepciones_oc_detalle_din')

	fTotRecep 	= total
}

/**
 * @properties={typeid:24,uuid:"7EC46FF8-0B0D-4BCC-8A20-CD122C57E5CC"}
 */
function controlaTipo()
{
	if (tipo == 0)
	{
		elements.grp_cliente.visible		= 0
		elements.grp_proveedor.visible 		= 1
		elements.tabs_180.tabIndex			= 2
		forms.recepciones_oc_tab_ind.fFormLlama = 'recepciones_autoriza_dtl_ind'
	}
	else
	{
		elements.grp_cliente.visible				= 1
		elements.grp_proveedor.visible 				= 0
		elements.tabs_180.tabIndex					= 1
		forms.recepciones_carga_rem_tab_ind.fFormLlama 	= 'recepciones_autoriza_dtl_ind'
	}
}

/**
 * @properties={typeid:24,uuid:"4BC7A597-E762-4489-B2AD-7118960BC1C4"}
 */
function confirmar() {

	var $tot_recep 	= 0
	var $cant 		= recep_cabecera_to_recep_detalle_ind.getSize()
	var $hist 		= databaseManager.getFoundSet('infocom','hist_stock')
	globals.gdeposito_ind = deposito
	
	if (tipo == 0)
	{// Proveedor - Orden de Compra
		for (var i = 1 ; i <= $cant ; i++)
		{
			var $rcd = recep_cabecera_to_recep_detalle_ind.getRecord(i)
			
			globals.defineUnidad($rcd,$rcd.recep_detalle_to_productos_ind,$rcd.recep_detalle_to_productos_ind.tipo)
			cargaStock($hist,$rcd,1)

			$tot_recep 	+= $rcd.total_renglon
			if ($rcd.oc_detalle_id != null)
			{
				descargaOc($rcd)
				cambiarEstadoOc($rcd)
				$tot_actual += $rcd.precio_actual * $rcd.cantidad_alter
				$tot_oc 	+= $rcd.precio_sistema_oc * $rcd.cantidad_alter
				$rcd.recep_detalle_to_productos_ind.stock_existencia += $rcd.cantidad_alter
				$rcd.recep_detalle_to_productos_ind.stock_pend_recepcion -= $rcd.cantidad_alter
				//exi_disponible es calculation debe ir en cantidad  //  29/01/2014
				//$rcd.recep_detalle_to_productos_ind.productos_to_existencias_x_dep_ind.exi_disponible += $rcd.cantidad_alter   
				$rcd.recep_detalle_to_productos_ind.productos_to_existencias_x_dep_ind.exi_cantidad += $rcd.cantidad_alter
				if ($rcd.recep_detalle_to_productos_ind.productos_to_existencias_x_dep_ind.exi_pend_recepcion > $rcd.cantidad_alter)
					$rcd.recep_detalle_to_productos_ind.productos_to_existencias_x_dep_ind.exi_pend_recepcion -= $rcd.cantidad_alter
				else
					$rcd.recep_detalle_to_productos_ind.productos_to_existencias_x_dep_ind.exi_pend_recepcion = 0
			}
		}
	}
	else
	{//Cliente - Remito
		
		for (var i = 1 ; i <= $cant ; i++)
		{
			var $rcd 			= recep_cabecera_to_recep_detalle_ind.getRecord(i)
			
			$rcd.total_renglon 	= $rcd.cantidad * $rcd.precio_unitario
			$tot_recep 			+= $rcd.total_renglon
			if ($rcd.recep_detalle_to_rem_detalle.cantidad_pendiente_fac > $rcd.cantidad_alter)
				$rcd.recep_detalle_to_rem_detalle.cantidad_pendiente_fac -= $rcd.cantidad_alter
			else
			{
				$rcd.recep_detalle_to_rem_detalle.cantidad_pendiente_fac = 0
				//TODO aviso
			}
			cargaStock($hist,$rcd,4)
		}
	}
	fTotRecep 	 = $tot_recep
	total		 = $tot_recep
	recep_estado = 3

	if (databaseManager.saveData())
	{
		application.closeForm('RECEP_DTL')
		forms.recepciones_autoriza_ind.onShow()
		globals.DIALOGS.showInfoDialog('Aviso','Recepcion Nº '+ nro_recep+' ha sido autorizada','OK')  // 23/01/2014
	}
	else
		globals.DIALOGS.showInfoDialog('Error','Ocurrio un error en la grabacion','OK')  // 23/01/2014
}

/**
 * @properties={typeid:24,uuid:"47FED8BD-BB50-49EC-A39F-E658A4198EFC"}
 */
function cambiarEstadoOc($rcd)
{
	/** @type {JSFoundSet<db:/infocom/oc_cabecera>}*/
	var $cab = $rcd.recep_detalle_to_oc_detalle_ind.oc_detalle_to_oc_cabecera_ind.getRecord(1)

	if ($cab.abierta == 0 && $cab.oc_estado != 5)
	{
		/*var query = 'select SUM(cantidad_pendiente_entrega) from oc_detalle' +
			'where oc_cabecera_id = ? group by oc_cabecera_id'
		var args = [$rcd.recep_detalle_to_oc_detalle.oc_cabecera_id]
		var max = 1
		
		var ds = databaseManager.getDataSetByQuery('infocom',query,args,max)
		*/
		
		total = 0
			
		for (var i = 1 ; i <= $cab.oc_cabecera_to_oc_detalle_ind.getSize() ; i++)
		{
			var $dtl = $cab.oc_cabecera_to_oc_detalle_ind.getRecord(i)
			
			total += $dtl.cantidad_pendiente_entrega
		}
		
		if (total == 0)
			$rcd.recep_detalle_to_oc_detalle_ind.oc_detalle_to_oc_cabecera_ind.oc_estado = 5
		else
			$rcd.recep_detalle_to_oc_detalle_ind.oc_detalle_to_oc_cabecera_ind.oc_estado = 4
	}
}

/**
 * @properties={typeid:24,uuid:"E5413A88-0AE4-4255-BA33-0CBCA9B6BED9"}
 */
function cargaStock($hist,$rcd,$tipo)
{
	$hist.newRecord()
	
	$hist.cantidad			= $rcd.cantidad;
	$hist.cantidad_signo 	= $rcd.cantidad
	if ($tipo == 4)
		$hist.cliente_id	= $rcd.recep_detalle_to_recep_cabecera_ind.cliente_id;
	else
		$hist.proveedor_id	= $rcd.recep_detalle_to_recep_cabecera_ind.proveedor_id
	$hist.producto_id		= $rcd.producto_id;
	$hist.cod_producto		= $rcd.cod_producto;
	$hist.fecha				= $rcd.recep_detalle_to_recep_cabecera_ind.fecha;
	$hist.tipo				= $tipo;
	$hist.deposito_id		= $rcd.recep_detalle_to_recep_cabecera_ind.deposito_id;
	$hist.moneda_id			= 1;  //ver si hay global de moneda default
	$hist.importe			= $rcd.total_renglon;
	$hist.importe_en_pesos	= $rcd.total_renglon;
	$hist.comprob_tipo		= globals.zparam_codigo_recepciones
	$hist.comprob_sucursal	= $rcd.recep_detalle_to_recep_cabecera_ind.sucursal;
	$hist.comprob_nro		= $rcd.recep_detalle_to_recep_cabecera_ind.nro_recep;
	$hist.comprob_letra		= $rcd.recep_detalle_to_recep_cabecera_ind.letra;
}

/**
 * @properties={typeid:24,uuid:"32C72110-AB87-40C7-9FF5-A38783367037"}
 */
function descargaOc($dtl)
{
	/*
	 * Descargo de la orden de compra 
	 * Valorizacion del renglon
	 * Segun si esta relacionado a una oc o no
	 */
	if ($dtl.oc_detalle_id != null)
	{
		if ($dtl.recep_detalle_to_oc_detalle_ind.cantidad_pendiente_entrega < $dtl.cantidad_alter)
		{
			$dtl.recep_detalle_to_oc_detalle_ind.cantidad_pendiente_entrega = 0
			//TODO dejar aviso de q se recibio mas de lo q dice la oc
		}
		else
			$dtl.recep_detalle_to_oc_detalle_ind.cantidad_pendiente_entrega -= $dtl.cantidad_alter
		var $valor = $dtl.precio_unitario * $dtl.cantidad_alter
	}
	else
		var $valor = $dtl.recep_detalle_to_productos_ind.costo_en_pesos * $dtl.cantidad
	
	$dtl.total_renglon = $valor
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"86187071-47FA-4D48-8B1E-DB9CABF273AF"}
 */
function eliminar(event) {
	recep_cabecera_to_recep_detalle_ind.deleteRecord()
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"87D75CF6-E346-4BAB-A0B9-9FCA30290337"}
 */
function agregar(event) {
	recep_cabecera_to_recep_detalle_ind.newRecord(false)
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"249D2011-AC00-4C06-A705-C57D22356473"}
 */
function cancelar(event) {
	databaseManager.revertEditedRecords()
	databaseManager.setAutoSave(true)
	var $win = application.createWindow('RECEP_DTL',JSWindow.MODAL_DIALOG)
	$win.hide()
	$win.destroy()
}
